10c31302445092224e7b9cab535f6eb6ae21216c,webanno-ui-curation/src/main/java/de/tudarmstadt/ukp/clarin/webanno/ui/curation/page/CurationPage.java,CurationPage,CurationPage,#,138
Before Change
public CurationPage()
{
bModel = new AnnotatorStateImpl();
bModel.setMode(Mode.CURATION);
reMerge = new ReMergeCasModel();
curationContainer = new CurationContainer();
curationContainer.setBratAnnotatorModel(bModel);
curationPanel = new CurationPanel("curationPanel", new Model<CurationContainer>(
curationContainer))
{
private static final long serialVersionUID = 2175915644696513166L;
@Override
protected void onChange(AjaxRequestTarget aTarget)
{
JCas mergeJCas = null;
try {
mergeJCas = repository.readCurationCas(bModel.getDocument());
}
catch (Exception e) {
aTarget.add(getFeedbackPanel());
LOG.error("Unable to load data", e);
error("Unable to load data: " + ExceptionUtils.getRootCauseMessage(e));
}
aTarget.add(numberOfPages);
gotoPageTextField.setModelObject(bModel.getFirstVisibleSentenceNumber());
gotoPageAddress = getSentenceAddress(mergeJCas, gotoPageTextField.getModelObject());
aTarget.add(gotoPageTextField);
aTarget.add(curationPanel);
}
};
curationPanel.setOutputMarkupId(true);
add(curationPanel);
add(documentNamePanel = new DocumentNamePanel("documentNamePanel",
new Model<AnnotatorState>(bModel)));
documentNamePanel.setOutputMarkupId(true);
add(numberOfPages = (Label) new Label("numberOfPages",
new LoadableDetachableModel<String>()
{
private static final long serialVersionUID = 1L;
@Override
protected String load()
{
if (bModel.getDocument() != null) {
JCas mergeJCas = null;
try {
mergeJCas = repository.readCurationCas(bModel.getDocument());
totalNumberOfSentence = getNumberOfPages(mergeJCas);
// If only one page, start displaying from
// sentence 1
if (totalNumberOfSentence == 1) {
bModel.setFirstVisibleSentence(
WebAnnoCasUtil.getFirstSentence(mergeJCas));
}
List<SourceDocument> listofDoc = getListOfDocs();
int docIndex = listofDoc.indexOf(bModel.getDocument())+1;
return "showing " + bModel.getFirstVisibleSentenceNumber() + "-"
+ bModel.getLastVisibleSentenceNumber() + " of "
+ totalNumberOfSentence + " sentences [document " + docIndex
+ " of " + listofDoc.size() + "]";
}
catch (Exception e) {
return "";
}
}
else {
return "";// no document yet selected
}
}
}).setOutputMarkupId(true));
add(openDocumentsModal = new ModalWindow("openDocumentsModal"));
openDocumentsModal.setOutputMarkupId(true);
openDocumentsModal.setInitialWidth(620);
openDocumentsModal.setInitialHeight(440);
openDocumentsModal.setResizable(true);
openDocumentsModal.setWidthUnit("px");
openDocumentsModal.setHeightUnit("px");
openDocumentsModal.setTitle("Open document");
add(new AnnotationPreferencesModalPanel("annotationLayersModalPanel",
new Model<AnnotatorState>(bModel), curationPanel.editor)
{
private static final long serialVersionUID = -4657965743173979437L;
@Override
protected void onChange(AjaxRequestTarget aTarget)
{
// Re-render the whole page because the width of the sidebar may have changed
aTarget.add(CurationPage.this);
aTarget.add(numberOfPages);
JCas mergeJCas = null;
try {
aTarget.add(getFeedbackPanel());
mergeJCas = repository.readCurationCas(bModel.getDocument());
curationPanel.updatePanel(aTarget, curationContainer);
updatePanel(curationContainer, aTarget);
updateSentenceNumber(mergeJCas, bModel.getFirstVisibleSentenceAddress());
}
catch (Exception e) {
aTarget.add(getFeedbackPanel());
LOG.error("Unable to load data", e);
error("Unable to load data: " + ExceptionUtils.getRootCauseMessage(e));
}
}
});
add(new ExportModalPanel("exportModalPanel", new Model<AnnotatorState>(bModel))
{
private static final long serialVersionUID = -468896211970839443L;
{
setOutputMarkupId(true);
setOutputMarkupPlaceholderTag(true);
}
@Override
protected void onConfigure()
{
super.onConfigure();
setVisible(bModel.getProject() != null
&& (SecurityUtil.isAdmin(bModel.getProject(), repository, bModel.getUser())
|| !bModel.getProject().isDisableExport()));
}
});
gotoPageTextField = (NumberTextField<Integer>) new NumberTextField<Integer>("gotoPageText",
new Model<Integer>(0));
Form<Void> gotoPageTextFieldForm = new Form<Void>("gotoPageTextFieldForm");
gotoPageTextFieldForm.add(new AjaxFormSubmitBehavior(gotoPageTextFieldForm, "submit")
{
private static final long serialVersionUID = -4549805321484461545L;
@Override
protected void onSubmit(AjaxRequestTarget aTarget)
{
if (gotoPageAddress == 0) {
aTarget.appendJavaScript("alert('The sentence number entered is not valid')");
return;
}
JCas mergeJCas = null;
try {
aTarget.add(getFeedbackPanel());
mergeJCas = repository.readCurationCas(bModel.getDocument());
if (bModel.getFirstVisibleSentenceAddress() != gotoPageAddress) {
updateSentenceNumber(mergeJCas, gotoPageAddress);
aTarget.add(numberOfPages);
updatePanel(curationContainer, aTarget);
}
}
catch (Exception e) {
aTarget.add(getFeedbackPanel());
LOG.error("Unable to load data", e);
error("Unable to load data: " + ExceptionUtils.getRootCauseMessage(e));
}
}
});
gotoPageTextField.setType(Integer.class);
gotoPageTextField.setMinimum(1);
gotoPageTextField.setDefaultModelObject(1);
add(gotoPageTextFieldForm.add(gotoPageTextField));
gotoPageTextField.add(new AjaxFormComponentUpdatingBehavior("change")
{
private static final long serialVersionUID = 1244526899787707931L;
@Override
protected void onUpdate(AjaxRequestTarget aTarget)
{
JCas mergeJCas = null;
try {
aTarget.add(getFeedbackPanel());
mergeJCas = repository.readCurationCas(bModel.getDocument());
gotoPageAddress = getSentenceAddress(mergeJCas,
gotoPageTextField.getModelObject());
}
catch (Exception e) {
aTarget.add(getFeedbackPanel());
LOG.error("Unable to load data", e);
error("Unable to load data: " + ExceptionUtils.getRootCauseMessage(e));
}
}
});
finish = new WebMarkupContainer("finishImage");
finish.setOutputMarkupId(true);
finish.add(new AttributeModifier("src", new LoadableDetachableModel<String>()
{
private static final long serialVersionUID = 1562727305401900776L;
@Override
protected String load()
{
if (bModel.getProject() != null && bModel.getDocument() != null) {
if (repository
.getSourceDocument(bModel.getDocument().getProject(),
bModel.getDocument().getName()).getState()
.equals(SourceDocumentState.CURATION_FINISHED)) {
return "images/accept.png";
}
else {
return "images/inprogress.png";
}
}
else {
return "images/inprogress.png";
}
}
}));
add(finishCurationModal = new ModalWindow("finishCurationModal"));
finishCurationModal.setOutputMarkupId(true);
finishCurationModal.setInitialWidth(650);
finishCurationModal.setInitialHeight(40);
finishCurationModal.setResizable(true);
finishCurationModal.setWidthUnit("px");
finishCurationModal.setHeightUnit("px");
AjaxLink<Void> showFinishCurationModal;
add(showFinishCurationModal = new AjaxLink<Void>("showFinishCurationModal")
{
private static final long serialVersionUID = 7496156015186497496L;
@Override
public void onClick(AjaxRequestTarget target)
{
actionFinishDocument(target);
}
});
showFinishCurationModal.add(finish);
add(reCreateMergeCas = new ModalWindow("reCreateMergeCasModal"));
reCreateMergeCas.setOutputMarkupId(true);
//Change size if you change text here
reCreateMergeCas.setInitialWidth(580);
reCreateMergeCas.setInitialHeight(40);
reCreateMergeCas.setResizable(true);
reCreateMergeCas.setWidthUnit("px");
reCreateMergeCas.setHeightUnit("px");
reCreateMergeCas
.setTitle("Are you sure? All curation annotations for this document will be lost.");
add(showreCreateMergeCasModal = new AjaxLink<Void>("showreCreateMergeCasModal")
{
private static final long serialVersionUID = 7496156015186497496L;
@Override
protected void onConfigure()
{
setEnabled(bModel.getDocument() != null
&& !bModel.getDocument().getState()
.equals(SourceDocumentState.CURATION_FINISHED));
}
@Override
public void onClick(AjaxRequestTarget aTarget)
{
actionRemergeDocument(aTarget);
}
});
add(new GuidelineModalPanel("guidelineModalPanel", Model.of(bModel)));
add(new LambdaAjaxLink("showOpenDocumentModal", this::actionOpenDocument));
After Change
public CurationPage()
{
setModel(Model.of(new AnnotatorStateImpl(Mode.CURATION)));
reMerge = new ReMergeCasModel();
curationContainer = new CurationContainer();